// operator_test.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include <iostream>

class OBase
{
  public:
    OBase& operator<<(int rhs);
};

OBase& OBase::operator<<(int rhs)
{
  std::cout << "OBase::operator<< " << rhs << std::endl;
  return *this;
}

class IBase
{
  public:
    IBase& operator>>(int rhs);
};

IBase& IBase::operator>>(int rhs)
{
  std::cout << "IBase::operator>> " << rhs << std::endl;
  return *this;
}

class Inherited : public OBase, public IBase
{
  void SomeMethod();
};

void Inherited::SomeMethod()
{
  std::cout << "Inherited::SomeMethod()" << std::endl;
}


int main()
{
  OBase obaseObj;
  IBase ibaseObj;
  Inherited inheritedObj;
  
  obaseObj << 5;
  ibaseObj >> 6;
  inheritedObj << 10;
  inheritedObj >> 11;
  
  int tmp;
  std::cin >> tmp;
  
  return 0;
}
